package sf01.studentmngmsystem.service;

import sf01.studentmngmsystem.entity.Student;
import java.util.List;
import java.util.Map;

public interface StudentService {
    Map<String, Object> getStudentsWithPagination(int page, int size, String name, String major, String classNumber, String sortField, String sortOrder);
    Student getStudentById(Long id);
    List<Student> getStudentsByCondition(String name, String major, String classNumber);
    void addStudent(Student student);
    void updateStudent(Student student);
    void deleteStudent(Long id);
    int getTotalCount(String name, String major, String classNumber);
    
    /**
     * 批量删除学生（原版本）
     */
    void batchDeleteStudents(List<Long> studentIds);
    
    /**
     * 批量删除学生（优化版本）
     */
    void batchDeleteStudentsOptimized(List<Long> studentIds);
    
    /**
     * 数据导出功能
     */
    byte[] exportStudents(String name, String major, String classNumber);
    
    /**
     * 学生登录验证
     * @param account 账号（邮箱或手机号）
     * @param password 密码（生日，格式：yyyy-MM-dd）
     * @return 登录成功返回学生对象，失败返回null
     */
    Student login(String account, String password);
}